home *** CD-ROM | disk | FTP | other *** search
/ Ian & Stuart's Australian Mac: Not for Sale / Another.not.for.sale (Australia).iso / fade into you / being there / How To & FAQ's / UNIX-Email-Software-SurveyAQ < prev    next >
Text File  |  1994-11-13  |  62KB  |  1,341 lines

  1.  
  2.         UNIX EMail Software - a Survey
  3.                Chris Lewis
  4.         clewis@ferret.ocunix.on.ca
  5.         [and a host of others - thanks]
  6.  
  7. Changes this issue: "mailagent" a new mail filter.  Sendmail 6.1
  8.  
  9. Note: this FAQ has been formatted as a digest.  Many newsreaders
  10. can skip to each of the major subsections by pressing ^G.
  11.  
  12. Please direct comments or questions to mailfaq@ferret.ocunix.on.ca -
  13. note Reply-to: line.
  14.  
  15. --------
  16. ~Subject: Introduction
  17.  
  18. Configuring electronic mail systems can be quite a complicated
  19. subject.  Often far more complicated than, say, setting up
  20. a USENET news feed.  This is because, unlike news, email is
  21. expected to traverse multiple types of networks using their own
  22. protocol, whereas, USENET news tends to be a single protocol
  23. supported by hook or by crook on different networks.
  24.  
  25. This document is intended for system administrators who need to
  26. know how to set up their UNIX systems for email communication with
  27. the outside world.  It is intended for the email-naive SA
  28. who gets more than a little confused by the acronyms, RFC's and
  29. plethora of software.
  30.  
  31. This is intended to be a general survey of the software available,
  32. so I won't spend too much time on some of the details.  Most of
  33. the available software comes with documentation that can
  34. explain things much better than I can.
  35.  
  36. Additional detail can be obtained from several sources, such as:
  37.  
  38.     Quarterman, John S.: "The Matrix -- Computer Networks
  39.     and Conferencing Systems Worldwide", Digital Press 1990,
  40.     (Order No.  EY-C176E-DP), ISBN 1-55558-033-5.
  41.  
  42.     Adams, Rick and Frey, Donnalyn: !%@:: A Directory of Mail
  43.     Addressing and Networks, 2nd Ed., O'Reilly & Associates 1990,
  44.     ISBN 0-937175-15-3.
  45.  
  46.     Kehoe, Brendan P.: Zen and the Art of the Internet: A
  47.     Beginner's Guide, Second Edition, Prentice Hall 1992,
  48.     ISBN 0-13-010778-6.  Edition 1 is available via FTP on
  49.     cs.widener.edu in the tar file zen-1.0.tar.Z. [I think]
  50.  
  51. Further, this is primarily oriented towards UNIX email systems.
  52. This is unfortunate, because it would be nice to have a general
  53. document covering email in all of its forms.  However, each
  54. operating system tends to have radically different email mechanisms,
  55. so it would be difficult to do justice to any other environment.
  56. It seems more useful to cover one environment well here, and have
  57. companion documents for other environments.  Speaking of which,
  58. why hasn't anybody else stepped in to do FAQs on other environments?
  59. Like DOS, Mac etc.
  60.  
  61. And finally, this document is not intended to be pedantically
  62. correct.  Knowledgeable readers will know that I'm glossing
  63. over a lot of detail, and absolute precision has been balanced
  64. against readability and effectiveness in helping people get
  65. going.
  66.  
  67. --------
  68. ~Subject: Layout
  69.  
  70. This FAQ is laid out in the following sections:
  71.  
  72.     + An overview of how mail systems go together.
  73.  
  74.     + A glossary of the important terms to know.
  75.  
  76.     + A list of general do's and don'ts of mail systems.
  77.  
  78.     + Configuration Issues
  79.  
  80.     + Several suggested mail configurations. 
  81.  
  82.     + General overviews of specific software.
  83.  
  84. --------
  85. ~Subject: Electronic mail - A General Overview of Structure
  86.  
  87. Electronic mail generally consists of three basic pieces:
  88.  
  89.     1) The link level transport - which could be
  90.        UUCP, TCP/IP, or a host of others.  We'll call
  91.        this the "transport medium" (TM)
  92.  
  93.     2) the "Mail Transport Agent" (MTA) which is responsible for
  94.        transporting mail from source to destination, possibly
  95.        transforming protocols, addresses, and routing the mail.
  96.  
  97.        The MTA often has several components:
  98.         - Routing mechanisms
  99.         - Local delivery agent (LDA)
  100.         - Remote delivery agent
  101.        Many MTA's have all of these components, but some
  102.        do not.  In other cases, it is possible to replace
  103.        certain components for increased functionality.
  104.  
  105.     3) The "User Agent" (UA) is the user interface -
  106.        the software that the user uses to read his mail,
  107.        sort things around in folders, and send mail.
  108.        Sometimes called "Mail User Agent" (MUA).
  109.  
  110. --------
  111. ~Subject: Glossary
  112.  
  113. Rather than alphabetic, this glossary tends to group terms
  114. referring to similar functionality together.
  115.  
  116. Transport Medium:
  117.  
  118.     UUCP (Unix to Unix Copy Program):
  119.     Back in the mists of time, UNIX systems communicated only
  120.     over RS232 serial lines, usually over modems.  UUCP is a
  121.     suite of programs developed back in the early 70's to
  122.     provide this communications link.  All that UUCP does is
  123.     transfer files from one system to another.  There is an
  124.     additional mechanism where one system can direct the
  125.     destination system to run a file through a specific program.
  126.     Electronic mail in UUCP is simply requesting the destination
  127.     machine to run "mail" on a data file.
  128.  
  129.     UUCP communicates by means of "protocols", the most common
  130.     being "g", a method for transmission of data over telephone
  131.     lines and ensuring that the data is not corrupted.  There
  132.     are several other protocols, none universally available,
  133.     and most oriented towards communication media other than
  134.     telephone voice lines (such as dialup X.25, PAD X.25, or
  135.     LAN connects).
  136.  
  137.     UUCP operates over fixed system-to-system links, so sending
  138.     mail from one system to another often has to traverse
  139.     other intermediate systems.
  140.  
  141.     TCP/IP (Transmission Control Protocol/Internet Protocol):
  142.     TCP/IP is a protocol that allows any system on a network to
  143.     talk "directly" to any other, by passing packets of
  144.     information back and forth.  TCP/IP (and its later relative
  145.     OSI) is usually used over networks built on top of Ethernet,
  146.     Token-Ring, Starlan and other LANS.
  147.  
  148.     SMTP:
  149.     Or, "Simple Mail Transfer Protocol", is the communications
  150.     protocol used most commonly over TCP/IP links in UNIX
  151.     environments for mail.  SMTP usually operates directly between
  152.     the source and destination machines, so intermediate machines
  153.     don't get involved (except for gateways, see below).  SMTP
  154.     is usually part of the MTA.
  155.  
  156.     SLIP (Serial Line Internet Protocol):
  157.     SLIP is an implementation of TCP/IP designed for use over
  158.     RS232 serial lines (ie: modems).  The other difference is
  159.     that some SLIP implementations have the ability to "dial the
  160.     phone" to make a connection for a specific transfer, whereas
  161.     LAN TCP/IP is physically continuously connected.  You'd also
  162.     need TCP/IP to run a SMTP mail connection.
  163.  
  164.     PPP (Point-to-Point Protocol):
  165.     A successor to SLIP.
  166.  
  167.     X.25/X.29:
  168.     X.25 is a packet switched data network which is usually
  169.     half-duplex.  In this context, it's really an alternative
  170.     to dialup over voice telephone lines with modems.  X.25
  171.     is available in several "flavours", either direct X.25
  172.     trunk connects over leased lines, through "PAD" interfaces,
  173.     or by ordinary dialup modem access to X.25 "ports".
  174.  
  175.     To be useable in the context of mail transfers, you also
  176.     have to use a file transfer protocol/mechanism of some
  177.     sort on top of X.25.  The most common being UUCP "f" protocol
  178.     (through PADS or dialup), or "x" with direct X.25 connects.
  179.  
  180.     Whether you use X.25 or phones plus modems depends on a number
  181.     of factors - usually the determining factor is cost.  In North
  182.     America, high speed modems (eg: 9600 baud and above) over telephone
  183.     lines tends to be less expensive.  However, Europe's really
  184.     wierd phone system structure usually makes X.25 more cost-effective,
  185.     and therefore, X.25 use in UNIX mail systems is much more common
  186.     in Europe than North America.
  187.  
  188.     X.29 is the command set used to configure and establish
  189.     X.25 connections.
  190.  
  191. Networks:
  192.  
  193.     Internet:
  194.     An "internet" is a network comprised of computers that talk
  195.     to each other using TCP/IP, and usually SMTP for mail.
  196.  
  197.     The "Internet" is a vast network of hundreds of thousands of
  198.     machines using SMTP protocol mail, communicating with
  199.     each other over relatively high speed lines.  But not all
  200.     "internets" are connected to *the* Internet.
  201.     
  202.     The Internet grew out of a US government funded project in
  203.     inter-computer communications that grew into an enormous network
  204.     of systems.
  205.  
  206.     One of the principle characteristics of this network is that
  207.     machines are addressed by domain names which identify the
  208.     destination, rather than addresses that are constructed out
  209.     of the route from machine-to-machine-to-machine.
  210.  
  211.     UUCP Network:
  212.     The UUCP network is that set of machines that talk to each other
  213.     via UUCP.  Sending mail through this network requires that the sender
  214.     know the network topology of UUCP links, and specify a path from one
  215.     machine to the next.  (There are, of course, ways around this.
  216.     See the section on "do's and don'ts".)
  217.  
  218. Mail addresses:
  219.  
  220.     Addresses:
  221.     An email address is a method of specifying a given person on
  222.     a specific machine.  There are scads of conventions, usually
  223.     determined by the presence of "@"'s, "!"'s and other special
  224.     characters in the name.  An address usually consists of
  225.     two parts: a userid/name and a machine specification.
  226.  
  227.     A Domain address usually looks like:
  228.         userid@domain-address
  229.     Whereas a UUCP address usually looks like:
  230.         siteA!siteB!siteC!userid
  231.  
  232.     Domain Addresses:
  233.     Domains are a way of uniquely specifying a destination.
  234.     Much like a postal address, a domain specifies a set of
  235.     progressively more restrictive "domains" of the potential
  236.     address space.  It would perhaps be illustrative to give an
  237.     example:
  238.  
  239.         clewis@ferret.marketing.fooinc.com
  240.  
  241.     You read these things right to left: "com" means the
  242.     commercial domain.  "fooinc" is the name of an organization
  243.     within the commercial domain.  "Marketing" is the name of a
  244.     suborganization within fooinc, and ferret gives the name of
  245.     a machine (usually).  Domains can have any number of levels.
  246.  
  247.     The top level domain (com in the above example) has many
  248.     possible values.  In the United States, "com", "mil", "edu",
  249.     and "gov" are fairly standard.  Elsewhere, the top level
  250.     domain tends to be a country code, the second level tends to
  251.     be a province or state, OR a classification like "edu" or "ac"
  252.     for academic (such as ac.jp, go.jp, ac.uk, edu.au, etc)
  253.     and the third an organization.  But, for example, there are
  254.     many .com and .edu sites in Canada and other countries.
  255.  
  256.     FQDN
  257.     A fully-qualified-domain-name (FQDN) has a entry for each
  258.     level of the domain, from individual machine to top-level
  259.     domain.  In many cases, an organization has implemented an
  260.     organizational "gateway" at a higher level of domain, so
  261.     that people from outside don't have to specify FQDN's to get
  262.     to a specific person.  In the above example, for instance,
  263.     "fooinc.com" may be sufficient to get to anyone inside
  264.     fooinc, and "ferret.marketing" may not be necessary.
  265.  
  266.     On the other hand, people sometimes leave out the higher
  267.     levels of the address, as in "ferret.marketing".
  268.     This is a bad idea - because if the mail is cc'd out of the
  269.     organization, chances are the external recipient cannot reply,
  270.     because "ferret.marketing" is incomplete.  So use addresses
  271.     that are specified sufficiently for external users to use.
  272.     (fooinc.com if a organizational gateway is used, the whole
  273.     ferret.marketing.fooinc.com if not)
  274.  
  275.     NIC
  276.     Internet TOP-LEVEL domains (edu, com, gov, mil) are controlled
  277.     by a single organization, the NIC (nic.ddn.mil).  An organization
  278.     "gets a piece" of the namespace by registering with the NIC, and
  279.     then they are free to administer their own namespace (everything
  280.     under fooinc.com) as they choose.  The same is true for foreign
  281.     countries; Once they have their top-level domain (usually the
  282.     two-letter ISO country code) registered with the NIC, they do
  283.     the rest, and divide it as they see fit.
  284.  
  285.     In contrast, on UUCPnet, all machine names everywhere share a
  286.     single flat namespace.  So it is important to choose a name
  287.     that has not been used before. (See do's and don'ts).  This is
  288.     why FQDN's help.  We can tell the difference between
  289.     ferret.fooinc.com and ferret.blah.edu by their full names.
  290.     (Instead of UUCP paths which may turn out to be wrong, and
  291.     autorouting will probably send the mail to the wrong machine)
  292.  
  293.     MX record:
  294.     A non-SMTP/Internet site that wishes to register on the Internet
  295.     will need to get a "nearby" Internet site to set up a MX
  296.     record for them.  An MX record is essentially a domain-server
  297.     database record that (effectively) registers your domain name
  298.     on the Internet, and indicates that the Internet site knows
  299.     how to forward mail to you.  Usually via some non-SMTP/Internet
  300.     route, such as UUCP.  You can get an MX record for one site, or
  301.     a "wildcard" MX record so that you can have your own subdomains.
  302.  
  303.     Bang-Paths:
  304.     With UUCP mail, the MTA has to specify a route to get from one
  305.     machine to another.  "A!B!C!userid" means go to machine A,
  306.     then B, then C, then user "userid" on C.  You should strive,
  307.     however, for a MUA that allows you to use domain addressing,
  308.     and let the MTA figure out the bang routing as appropriate.
  309.  
  310. Miscellaneous:
  311.  
  312.     Gateways:
  313.     There are several meanings of this term, only two are relevant
  314.     here.
  315.  
  316.     The first is a mechanism for getting from one network to another
  317.     network that uses different protocols.
  318.  
  319.     The second is a mechanism for getting from one logical (often
  320.     organizational) network to another using the same protocol.
  321.     Often for example, there will be a LAN in one department of
  322.     an organization, and one machine in the LAN has the connection
  323.     to another LAN in another department.  This means that mail from
  324.     one LAN to the other has to pass thru the gateway machine.
  325.  
  326.     Routers:
  327.     There are several definitions, but the most important is that
  328.     part of the TA that figures out how to send a message to
  329.     a given machine.  This often uses a database that provides
  330.     routes from one machine to the other machines on the network.
  331.  
  332.     Smarthost:
  333.     In many cases, your machine won't know how to get to a specific
  334.     destination.  You can usually set up your mail system to send mail,
  335.     that it doesn't know how to deliver, to a machine that is more
  336.     likely to.
  337.  
  338.     RFC's:
  339.     A set of documents that include formal descriptions of mail
  340.     formats used on the Internet, and are adhered to by many
  341.     non-Internet systems.  More specifically, in the "worldnet"
  342.     of USENET, Internet and UUCP, the RFC's set the standards
  343.     for mail exchange.  RFC822, 1123 and 976 are the most important
  344.     for Internet/UUCP mail.
  345.  
  346.     It should be pointed out, however, that there are some
  347.     regions where the RFC's are not entirely respected.  For example,
  348.     the British academic email networks (JANET) uses domains, but
  349.     they're specified backwards (they drive on the wrong side of
  350.     the road too ;-).
  351.  
  352.     MIME:
  353.     Mime is the official proposed standard format for multimedia Internet
  354.     mail encapsulated inside standard Internet RFC 822 messages.  Facilities
  355.     include sending multiple objects in a single message, character sets
  356.     other than US-Ascii, multi-font text messages, non-textual material
  357.     such as images and audio fragments, and other extensions.  For an
  358.     overview of Mime, see ftp.uu.net:mail/metamail/MIME-overview.txt.Z.
  359.     The defining document is Internet RFC 1341: N Borenstein & N Freed,
  360.     ``Mime (Multipurpose Internet Mail Extensions) mechanisms for specifying
  361.     and describing the format of Internet message bodies'' (June 1992).
  362.     Also see RFC 1344: N Borenstein, ``Implications of Mime for Internet
  363.     mail gateways'' (June 1992).
  364.  
  365.     Mime covers only message bodies, not message headers; to see how to
  366.     represent non-Ascii characters in message headers, see Internet
  367.     RFC 1342: K Moore, ``Representation of non-Ascii text in Internet
  368.     message headers'' (June 1992).
  369.     
  370.     X.400:
  371.     A CCITT standard for email formats, more or less an alternative
  372.     to RFC 822/976/1123.  This format will probably start taking over
  373.     from RFC 822/976/1123 mail.  It is likely to (already has?) become an
  374.     ISO/IEEE standard along with OSI etc.
  375.  
  376.     "The Maps":
  377.     A set of files describing machine-to-machine links distributed
  378.     over USENET in the group comp.mail.maps.  These are usually posted
  379.     on a monthly schedule, and can be automatically received and
  380.     transformed into a routing database that describes the "optimal"
  381.     route to each machine.  These are operated by the "UUCP Mapping
  382.     Project".  See the README posted along with the maps for
  383.     more details.
  384.  
  385.     Aliases:
  386.     Aliases are a mechanism by which you can specify the destination
  387.     for mail on your machine.  Through the use of aliases you can
  388.     redirect mail to "virtual userids".  For example, you should
  389.     have a mail destination on your machine called "postmaster", which
  390.     is aliased to send the mail to the System Administrator (ie: you
  391.     probably).  Aliasing often also permits you to send mail to groups
  392.     of users (not necessarily on the same machine as you) pipelines of
  393.     commands or to specific files.
  394.  
  395.     Mailing lists:
  396.     Are similar to USENET newsgroups.  They are usually aliases
  397.     pointing to groups of users, and allow mail to be sent to the
  398.     whole group at once.  Mailing lists are set up to carry certain
  399.     subjects.  The difference between a mailing list and a USENET
  400.     newsgroup is that the messages are sent by mail, probably as
  401.     a copy to each recipient, rather than broadcast.
  402.  
  403. --------
  404. ~Subject: Do's and Don'ts:
  405.  
  406. 1) Register a domain name.  Even on UUCP, where <machine>.UUCP is often
  407.    used as a kludge, it is MUCH preferred that you obtain a real
  408.    domain address.  If you are directly connecting to the Internet,
  409.    you will get one as part of your registration with the NIC.
  410.  
  411.    If you aren't connecting directly to the Internet, obtaining a
  412.    registration will usually require you finding a nearby friendly
  413.    Internet site willing to act as a mail forwarder to you from
  414.    the Internet - the site that will set up a "MX record" for you.
  415.    Many sites will do this for you for free, and several of the
  416.    commercial email services (eg: uunet) will do it for you for a
  417.    nominal charge (without requiring you buy the rest of their
  418.    services).
  419.  
  420.    There are occasions where you can join what is called a "domain
  421.    park".  These are most often small regional groups of systems that
  422.    have gotten one of their number properly registered as a domain,
  423.    and provides forwarding services out to other systems.  For
  424.    example, in my address "ferret.ocunix.on.ca", "ocunix.on.ca"
  425.    is a domain park made up of the Ottawa-Carleton UNIX User's Group,
  426.    one of the other machines in the group provides a gateway between
  427.    our systems and the Internet.
  428.  
  429. 2) If your machine is going to "speak" UUCP to the outside world,
  430.    choose a unique UUCP name.  You can find out whether a name you
  431.    want is taken by consulting the UUCP maps.  Or by asking someone
  432.    else who's using them.
  433.  
  434. 3) Register your machine with the UUCP Mapping Project.  Information
  435.    on how to do this is included in the monthly maps postings in the
  436.    file "README".  This is usually only required when your machine
  437.    talks UUCP to the outside world, or when other machines have
  438.    to address you by your UUCP name.  If you don't do this, somone
  439.    else may choose the same name, and gross confusion will arise
  440.    when smart routers won't be able to tell whether to send a piece
  441.    of mail to you, or your doppelganger[s].  If you register with the
  442.    UUCP Mapping Project, you have prior use, and people who choose
  443.    the same name afterwards will be told to get a new one.
  444.    
  445.    If you're "behind" an organizational gateway, don't do this.
  446.    (Your organizational gateway is the thing that needs to be
  447.    registered)
  448.  
  449.    If you do fill in a map, please take the time to fill it in
  450.    carefully, giving contact people and phone numbers.  Just in
  451.    case your machine goes crazy and starts doing something nasty.
  452.    Note expecially the latitude and longitude.  Get it right,
  453.    or omit it.  Brian Reid gets really annoyed with sites that
  454.    are half a world away from where they really are.
  455.  
  456. 3) If you're going to be setting up multiple machines, have only
  457.    one or two connections to the outside world.
  458.  
  459. 4) Install a mail system that understands domain addressing, even
  460.    if you aren't registered.  (In fact, all of the suggested
  461.    configurations in this FAQ do)
  462.  
  463. 5) *Never* use UUCP bang-routing with the MUA if you can possibly
  464.    avoid it - each of the suggested mail configurations provide
  465.    mechanisms where you, the user, do not have to specify routes 
  466.    to the MUA - you can specify domains, and the TA will do the
  467.    routing (possibly bang-routing) for you.
  468.  
  469. 6) Find a friendly neighboring SA to help.  A SA who has already
  470.    operating mail in your area will help smooth over the regional
  471.    "gotchas" that are bound to crop-up.  And advise you on the
  472.    right software to use, where to obtain it, and how to install it.
  473.  
  474. 7) Do NOT use "any old" Map unpacking program.  Most available
  475.    map unpacking programs automatically run the shell (or shar)
  476.    to unpack map articles.  Since it is trivially easy to forge
  477.    map articles, using this type of unpacking program can
  478.    easily let very destructive trojan horse or virus programs
  479.    into your machine.
  480.  
  481.    The two specific map unpackers described in this FAQ are known
  482.    to be secure from such attacks.  Do not run any other unpacker
  483.    unless you are aware of the issues and can inspect the code for
  484.    such vulnerabilities.  [If you know of other "secure" map
  485.    unpackers that are generally available, please let me know]
  486.  
  487. --------
  488. ~Subject: Configuration Issues:
  489.  
  490. What you need for email connectivity is determined by:
  491.  
  492.     1 What networks you intend to connect to.
  493.       The Internet (hence SMTP)?  UUCP sites?  X.400?
  494.       Bitnet?  Others?  Combinations?
  495.     2 What links you have or are willing to install
  496.       Internet T1?  T2?  UUCP?  Other?  [Details on how to
  497.       make your connections is beyond the scope of this FAQ,
  498.       but can usually be found out from the provider (other end)
  499.       of the link]
  500.     3 what user interface you want to use.  This is largely
  501.       an independent issue, so consult the Specific Package
  502.       Reviews directly.
  503.  
  504. --------
  505. ~Subject: Recommended MTA Configurations:
  506.  
  507. These configurations are based upon my own experience, and the
  508. experience of others.  Careful installation of any of these
  509. configurations will result in a solid, reliable mail system
  510. that respects the appropriate "do's and don'ts".  Each configuration
  511. represents a compromise of ease of installation and maintenance
  512. versus sophistication and capabilities.
  513.  
  514. One thing you should consider is what you already have on your
  515. system.  You will invariably have "binmail", and will have a good
  516. chance at already having sendmail.  Some systems come with
  517. smail (if 2.3, junk it)  The configurations shown below are *minimal*
  518. configurations, so you should consider whether you want to use what
  519. you already have or not.
  520.  
  521. Scenario 1:  Only UUCP connections.
  522.  
  523.     Smail 2.5.  If you want to set up a routing database of
  524.     your own, you will also need pathalias, and unpackmaps or
  525.     uuhosts.  Instead, though, you can configure smail 2.5 to
  526.     smart-host most destinations to a nearby friendly site
  527.     who'll do your routing for you without having to run
  528.     the routing software.  Note further, that you can run
  529.     pathalias on just a subset of the full set of maps.
  530.     [Unpackmaps makes this particularly easy to do]
  531.  
  532.     Smail 2.5, as shipped, does not support mail-to-pipeline
  533.     or mail-to-file aliasing.  If you need these, at a minimum,
  534.     you should obtain lmail.  If you intend more than casual
  535.     use of these features, it is recommended that you obtain
  536.     deliver instead of lmail.
  537.  
  538.     Even if you have sendmail already, you can integrate smail 2.5
  539.     with it to do your UUCP routing.  (though, some later versions
  540.     of sendmail can do routing themselves)
  541.  
  542.     (See the note regarding smail 2.7 in the Package Reviews)
  543.  
  544. Scenario 2:  SMTP connections (optionally, some UUCP connections too).
  545.  
  546.     Generally speaking, sendmail will do this for you and you have
  547.     a good chance to have it already.  However, for the novice, it
  548.     is recommended that smail 3 be used instead [see review of
  549.     sendmail below].  Smail 3 includes all of the routing software
  550.     and can do mail-to-pipeline and mail-to-file, so none of the auxiliary
  551.     programs mentioned in scenario 1 are necessary.
  552.  
  553.     Most sendmails don't include UUCP routing mechanisms, so you would
  554.     need pathalias and unpackmaps or uuhosts if you wish to set up
  555.     a UUCP routing database.  Further, most sendmails don't know
  556.     how to query a pathalias database directly, so you may have to hack
  557.     your own path lookup program into the sendmail.cf (smail 2.5 can
  558.     be used for this purpose provided that you will have a UUCP link
  559.     to the outside world)
  560.  
  561.     Both MMDF and PP can also be used.
  562.  
  563.     Deliver or procmail are still quite useful in this configuration
  564.     for extended alias facilities.
  565.  
  566. Scenario 3:  Connections to other networks (optionally including
  567.     SMTP or UUCP), or very high loading.
  568.  
  569.     Your best bets are MMDF, PP or zmailer.
  570.     
  571.     You can implement other network interfaces with sendmail, but
  572.     not only will you probably have to roll your own, but sendmail
  573.     can't cope with high loading very well.  Ditto smail 3.
  574.  
  575. There are other configurations.  See the Package Reviews to
  576. determine which packages are appropriate.
  577.  
  578. --------
  579. ~Subject: Package Reviews
  580.  
  581. Honesty requires me to point out which software packages were
  582. reviewed by their author (including me ;-).  I do so by appending
  583. a "*" to the name of the author.  In some cases, the material
  584. has been cribbed from FAQ's or general information blurbs.
  585.  
  586. It is worth noting, though, that most of these packages are well
  587. known, and have been in operation at many sites for periods of
  588. a year or more.  These packages do their job well, and have been
  589. extensively thrashed out in the best debugging laboratory in the
  590. universe (USENET ;-)
  591.  
  592. A few packages have been mentioned prior to their release.
  593. (Smail 2.7, unpackmaps 4, the occasional beta version).  It is
  594. recommended that these versions be avoided by novices until they
  595. have had a chance to settle for a little while.  This FAQ will
  596. note when such software seems (according to rumour *I* hear) to be
  597. stable enough for general use.
  598.  
  599. Some of these packages are capable, by various bits of hackery,
  600. of doing a lot more than is claimed for them.  But I refrain
  601. on telling you how to "take the covers off".  Given the
  602. intended audience, that would be tantamount to trying to
  603. teach preschoolers do-it-yourself brain surgery.  Please don't
  604. take this as condescending - I've been working on/in/with email
  605. systems for over 12 years and I *still* won't play with (as
  606. just one example) sendmail.cf's.
  607.  
  608. Therefore, I restrict myself largely to "out-of-the-box" functionality,
  609. "fill-in-the-blank" configurability, and normal documented installation
  610. procedures.  Beyond that, you're on your own.
  611.  
  612. binmail
  613.  
  614.     binmail is usually really called "mail". On System V prior to
  615.     Release 4, it is a really simple UA that does dual duty as the
  616.     TA.  It's pretty awful because it doesn't know how to set up
  617.     headers properly, doesn't even know what a "Subject:" line is,
  618.     and there's no way to do any kind of aliases.
  619.  
  620.     On BSD, binmail invokes sendmail to do the MTA function.  On
  621.     System V prior to Release 4, you really do want to replace binmail's
  622.     MTA functionality with something else.  However, you should not
  623.     replace it in its "mail" (UA) functionality, because many
  624.     system-level administration mechanisms will break.  Any new UA
  625.     should be installed as a different name than "mail".
  626.  
  627.     Beginning with System V Release 4, "binmail"'s transfer agent
  628.     capabilities were considerably enhanced to have similar capabilities
  629.     to Smail 3 and sendmail.  There is usually no need to replace it with
  630.     another mail agent.  (See SVR4 mail discussion below)
  631.  
  632.     Binmail stores mail in "mbox" format.
  633.  
  634. rmail
  635.  
  636.     binmail's TA functionality is implemented by linking mail
  637.     to rmail.  It's rmail that you'd want to replace with smail 2.5
  638.     etc.
  639.  
  640. Mail
  641.  
  642.     The original BSD UA.  It can support local profiles, aliases, folders,
  643.     header previewing, out-going mail recording and all sorts of good stuff.
  644.     An "okay" UA.  Available from BSD "freed-sources" archives.
  645.  
  646.     Mail stores mail in "mbox" format.
  647.  
  648. mailx
  649.  
  650.     AT&T's answer to BSD "Mail", from which it is descended.  Some versions,
  651.     such as the 3b1 one, should be avoided because of a buggy port.  Not
  652.     available in source form (it's proprietary but ubiquitous enough to be
  653.     mentioned here).
  654.  
  655.     Mailx stores mail in "mbox" format.
  656.  
  657. mush: author Dan Heller* <argv@z-code.com>
  658.  
  659.     The "Mail User's Shell" is a "shell" for mail users.  That is, it
  660.     has its own environment where you can configure not only the user
  661.     interface, but the actual internal mechanisms.  Internally, mush
  662.     has a csh-like scripting language, altho it's not as powerful as
  663.     csh.  It has command-line aliases, file completion, if-else state-
  664.     ments, command piping, and so on.  Because you can build your own
  665.     commands, you can virtually build your own library of email features.
  666.  
  667.     Mush has two tty-based interfaces: the standard tty-mode (ala BSD
  668.     Mail or sys-v mailx) and the fullscreen/curses mode (ala vi, emacs
  669.     or even Elm).  You can set up key bindings that execute one or more
  670.     mush commands, personalized commands or even UNIX commands.  You
  671.     can even emulate keyboard input with keyboard macros and mappings.
  672.  
  673.     Mush also has a SunView interface that is more powerful than Sun's
  674.     Mailtool, yet backwards compatible with most versions.  Most sunview
  675.     users (if there are any left these days) prefer MushView over Mailtool.
  676.  
  677.     The current version of Mush is 7.2.3, last posted in comp.sources.misc
  678.     volume 18 (with subsequent patches).  All three interfaces are
  679.     available in one runtime binary.  Except for the MushView interface
  680.     (which is only available on for suns), Mush is portable to everything
  681.     that runs UNIX.  There is also a DOS port available for PCs and can
  682.     run on most 286 machines. An older version of Mush (6.5) can run on
  683.     as little as 640 of RAM.  (Mush-PC is typically used with UUPC.)
  684.  
  685.     The "next generation" of Mush is a commercial product called Z-Mail
  686.     from Z-Code Software (mail argv@z-code.com for details).  All aspects
  687.     of Mush are retained, yet it has grown to be far more powerful.  It
  688.     runs under X windows with either a Motif or Open Look interface
  689.     and also supports multi-media, user "functions" and a suite of new
  690.     features.
  691.  
  692.     Third party documentation is available from O'Reilly in the book
  693.     entitled "The Z-Mail Handbook" (by Hanna Nelson).  This book not only
  694.     covers Z-Mail, but Mush as well.
  695.  
  696.     Mush stores its messages in "mbox" format, or MMDF format if you're
  697.     using MMDF as your MTA.
  698.  
  699.     The newsgroup comp.mail.mush is dedicated to it.
  700.  
  701.     [Note: Z-Mail is not related at all to Zmailer.  Zmailer is a MTA]
  702.  
  703. elm: coordinator Syd Weinstein* <syd@DSI.COM>
  704.  
  705.     (cribbed from comp.mail.elm FAQ)
  706.  
  707.     Elm is designed to run with "sendmail" or "/bin/rmail"
  708.     (according to what's on your system) and is a full
  709.     replacement of programs like "/bin/mail" and "mailx".  The
  710.     system is more than just a single program, however, and
  711.     includes programs like "frm" to list a 'table of contents'
  712.     of your mail, "printmail" to quickly paginate mail files (to
  713.     allow 'clean' printouts), and "autoreply", a systemwide
  714.     daemon that can autoanswer mail for people while they're on
  715.     vacation without having multiple copies spawned on the
  716.     system.
  717.  
  718.     The most significant difference between Elm and most other
  719.     mail systems is that Elm is screen-oriented.  Upon further
  720.     use, however, users will find that Elm is also quite a bit
  721.     easier to use, and quite a bit more "intelligent" about
  722.     sending mail and so on.
  723.  
  724.     Current release is Elm 2.3 PL11, comp.sources.unix vol 22, issues
  725.     60-85.  Patches in c.s.u vol 24, issue 25-35.  Patches are also
  726.     available from the archive server at DSI.COM:
  727.     send mail to archive-server@DSI.COM
  728.     send elm index
  729.  
  730.     [Ed: elm is particularly good for novices.  The only drawback
  731.     that I've heard is that elm is a bit less user configurable than,
  732.     say, mush]
  733.  
  734. MM: Contact Joseph Brennan* <info-mm@cunixf.cc.columbia.edu>
  735.                 Columbia University in the City of New York
  736.  
  737.     (cribbed from MM man page.)
  738.  
  739.     mm is a powerful electronic mail system which allows you to send, read,
  740.     edit and manage messages quickly and easily.  It is designed to have the
  741.     same interface as the MM program written and developed for DEC20s over a
  742.     period of many years.
  743.  
  744.     mm was written using the CCMD package developed at Columbia.  Thus, it
  745.     has copious internal help, completion of partially typed commands on use
  746.     of the TAB key, and help on partial commands when ?    is typed.
  747.  
  748.     mm can read several mail-file formats.  Its default is mbox, the same
  749.     format used by unix mail.  It also can read babyl, used by emacs rmail,
  750.     and mtxt and MH.  It can copy messages from one file type to another.
  751.  
  752.     MM is a Freeware MUA copyright by Columbia University (as is this
  753.     description).
  754.  
  755.     MM is available by anonymous ftp from cunixf.cc.columbia.edu, directory mm.
  756.     The file mm-intro.txt there is a longer description of how it was developed.
  757.  
  758.     [Ed: MM also appears to be a good UA for novices.  From the examples
  759.     in the manual page, it handholds extensively and is not screen oriented.]
  760.  
  761. MH: Maintainer John Romine <Bug-MH@ics.uci.edu>
  762.  
  763.     The big difference between MH and most other "mail user agents" is
  764.     that you can use MH from a UNIX shell prompt.  In MH, each command
  765.     is a separate program, and the shell is used as an interpreter.  So,
  766.     all the power of UNIX shells (pipes, redirection, history, aliases,
  767.     and so on) works with MH--you don't have to learn a new interface.
  768.     other mail agents have their own command interpreter for their
  769.     individual mail commands (although the mush mail agent simulates a
  770.     UNIX shell).  Mail messages are stored in individual files.
  771.  
  772.     The current version of MH is 6.7.2.  MH comes standard with Ultrix
  773.     4.0 and later, and AIX 3.1 and later.
  774.     via anonymous ftp:
  775.     ics.uci.edu [128.195.1.1]      pub/mh/mh-6.7.tar.Z    1.6MB
  776.     louie.udel.edu [128.175.1.3]  portal/mh-6.7.tar.Z    1.6MB
  777.  
  778.     A new version of MH that supports multi-part multi-media
  779.     mail is currently in alpha-test.
  780.     
  781.     comp.mail.mh discusses MH, and contains a FAQ article.
  782.  
  783. GNU Emacs Rmail:
  784.  
  785.     Rmail is an Emacs subsystem for reading and disposing of mail.  Rmail
  786.     stores mail messages in Rmail files in BABYL format (originally used
  787.     under the ITS operating system), although it can incorporate new mail
  788.     from MMDF and Unix format files, or mixed-format files.  Reading the
  789.     messages in an Rmail file is done in a special major mode, Rmail mode,
  790.     which redefines most letters to run commands for managing mail.
  791.  
  792.     Rmail can do the standard things such as displaying, deleting, filing,
  793.     or replying to messages.  Replying uses another Emacs subsystem, Mail
  794.     mode.  Messages can be saved in either BABYL or Unix format.  Rmail
  795.     maintains per-message attributes and user-defined labels.  Rmail can
  796.     burst message digests.
  797.  
  798. VM: Author Kyle Jones* <kyle@uunet.uu.net>
  799.  
  800.     VM (View Mail) is a GNU Emacs subsystem that allows UNIX mail to be read
  801.     and disposed of within Emacs.  Commands exist to do the normal things
  802.     expected of a mail user agent, such as generating replies, saving
  803.     messages to folders, deleting messages and so on.  There are other more
  804.     advanced commands that do tasks like bursting and creating digests,
  805.     message forwarding, and organizing message presentation according to
  806.     various criteria.
  807.  
  808.     The current version of VM is VM 4.41.
  809.     FTPable from:
  810.  
  811.     ab20.larc.nasa.gov        pub/vm/vm-4.41.tar.Z
  812.     ftp.uu.net            pub/vm-4.41.tar.Z
  813.     archive.cis.ohio-state.edu    pub/gnu/emacs/elisp-archive/packages/vm-4.41.tar.Z
  814.  
  815.     VM is discussed in gnu.emacs.vm.info, or by mailing list by sending
  816.     an e-mail request to info-vm-request@uunet.uu.net.
  817.  
  818. MH-E: Maintainer: Stephen Gildea <gildea@bbn.com>
  819.  
  820.     MH-E is an interface to MH from within GNU Emacs.  It helps if MH was
  821.     compiled with the MHE compiler flag.  MH-E is distributed with both GNU
  822.     Emacs and MH.  Choose the later version.
  823.  
  824. C-Client: Author Mark Crispin <mrc@panda.com>
  825.  
  826.     Software writers only:
  827.  
  828.     C-client is a general library useful for creating MUA's.  It provides
  829.     a high level logical interface for retrieving and manipulating
  830.     mail messages.  It supports the latest draft of MIME (proposed
  831.     Internet standard for multipart, multimedia, typed electronic mail).
  832.     It is driver based, and easily ported to new platforms and MTA's,
  833.     already supports BSD, SysV, DOS, Macintosh and TOPS-20(!),
  834.     and supports present mail and mailbox formats.
  835.  
  836.     Just the thing if you want to write a new MUA.
  837.  
  838.     Contact the author for more details.
  839.  
  840. Metamail: Author N. Borenstein
  841.     [Described by Paul Eggert, eggert@bi.twinsun.com]
  842.  
  843.     Metamail is a software implementation of Mime, designed for easy
  844.     integration with traditional mail-reading interfaces -- typically,
  845.     users do not invoke metamail directly.  Ideally, extending the local
  846.     email or news system to handle a new media format is a simple matter
  847.     of adding a line to a mailcap file.  Mailcap files are described in
  848.     RFC 1343: N Borenstein, ``A user agent configuration mechanism for
  849.     multimedia mail format information'' (June 1992).  The source code
  850.     for metamail can be found in ftp.uu.net:mail/metamail/mm.tar.Z.
  851.     To join its mailing list, write info-metamail-request@thumper.bellcore.com.
  852.  
  853.  
  854. MailManager: Author Mark Crispin <mrc@panda.com>
  855.  
  856.     A MUA implemented using C-Client for NeXT computers.
  857.  
  858. Pine: Authors Lundblade, Seibel, and Crispin <pine@cac.washington.edu>
  859.  
  860.     Pine is a mailer developed by the University of Washington Office of
  861.     Computing and Communications. It has been designed for ease-of-use and
  862.     with the novice computer user in mind. It is based on Internet mail
  863.     protocols (e.g. RFC-822, SMTP, IMAP, and MIME) and currently runs on
  864.     a variety of UNIX platforms. 
  865.  
  866.     The guiding principles for achieving ease-of-use in Pine were:
  867.     careful limitation of features, one-character mnemonic commands,
  868.     always-present command menus, immediate user feedback, and high
  869.     tolerance for user mistakes. It is intended that Pine can be learned
  870.     by exploration rather than reading manuals.
  871.  
  872.     A stand-alone version of Pico, Pine's message composition editor, is also
  873.     included. It is a very simple and easy to use text editor with text
  874.     justification and a spelling checker. 
  875.  
  876.     Features:
  877.        - Mail index showing a message summary which includes the status, 
  878.      sender, size, date and subject of messages.
  879.  
  880.        - View and process mail with the following commands:  forward, reply, 
  881.      save, export, print, delete, capture address and search.
  882.  
  883.        - Address book for saving long complex addresses and personal 
  884.      distribution lists under a nickname. 
  885.  
  886.        - Multiple folders and folder management screen for filing messages.
  887.  
  888.        - Message composer with easy-to-use editor and spelling checker.
  889.      The message composer also assists entering and formatting
  890.      addresses and provides direct access to the address book.
  891.  
  892.        - Online help specific to each screen and context.
  893.  
  894.        - Supports access to remote mail repositories via the IMAP2 protocol
  895.      defined in RFC-1176.
  896.      
  897.        - Soon to support multi-part mail conforming to proposed MIME Internet
  898.      standard, allowing sending of sounds, graphics such as GIF and TIFF
  899.      files, and binary files such as spreadsheets. 
  900.  
  901.     Pine, including source code, is freely available via anonymous FTP from
  902.     ftp.cac.washington.edu on the Internet. Other provisions for distribution
  903.     have not been made. From the Internet, you may try out Pine and leave
  904.     comments by telneting to "demo.cac.washington.edu" and logging in as
  905.     "pinedemo". To join the Pine mailing list for announcements send a 
  906.     request to "pine-info-request@cac.washington.edu". 
  907.  
  908.     Pine is very portable and runs on a variety of UNIX machines including
  909.     DECstations, NeXTs, VAX's and Suns. Pine was originally based on Elm, 
  910.     but it has evolved much since, ("Pine Is No-longer Elm"). 
  911.  
  912.     For further information send e-mail to pine@cac.washington.edu. Pine is
  913.     the work of Mike Siebel, Mark Crispin, and Laurence Lundblade at the
  914.     University of Washington. 
  915.  
  916. uumail:
  917.  
  918.     Uumail is a very old and obsolete precursor to smail 2.5.  Included
  919.     here only because I know that uumail sites still exist.  You
  920.     should not install uumail in new configurations, and existing
  921.     uumail sites should convert to something more modern.
  922.  
  923. smail 2.5: author The UUCP Mapping Project
  924.  
  925.     Smail 2.5 is a small, simple and hard-coded rule MTA for use on
  926.     UUCP networks.  It understands RFC compliant headers, will
  927.     generate RFC compliant Internet-style headers, can
  928.     use domains, aliases, a pathalias UUCP routing database, and
  929.     is very simple to install.  For full functionality, you will
  930.     also want pathalias and a map unpacker.  The one thing
  931.     it cannot do by itself is mail-to-pipe and mail-to-file aliasing.
  932.     For that, you need Zeeff's lmail, deliver or procmail (see
  933.     note on procmail).
  934.  
  935.     Smail 2.5 has the capability of coalescing addresses into single
  936.     UUCP transfers, and knows how to query UUCP for the names
  937.     of UUCP neighbors, and autoroute if necessary.
  938.  
  939.     Smail 2.5 has a few bugs that are (usually) pretty rarely seen
  940.     in operation.  There have been a number of patches posted for it,
  941.     but it is recommended that you do not apply them - some were
  942.     ill-conceived, buggy in their own right, or conflicting with others.
  943.     The only patches that I feel safe in recommending is Chip
  944.     Salzenberg's patches for use with Xenix MICNET - which are
  945.     unnecessary unless you are in the unfortunate position of having
  946.     to actually *use* MICNET.  In particular, do not apply the
  947.     "mail-to-pipe/file" patches that float around for smail 2.5.
  948.     This is a major security hole.  If you're concerned about the bugs,
  949.     I suggest you wait for smail 2.7.
  950.  
  951.     Smail 2.5 can also be used with sendmail as a UUCP router.
  952.  
  953.     Smail 2.5 was posted in comp.sources.unix in 1987, volume 18.
  954.  
  955. smail 2.7: custodian Greg Woods <woods@eci386.uucp>
  956.  
  957.     Smail 2.5 was originally a dead end.  There was a smail 2.6 used
  958.     internally in some places (no, don't ask for it).  Greg Woods
  959.     is doing a major cleanup and revision of smail 2.[5-6] (with permission
  960.     of the authors) and will be releasing it (I hope) soon.  Smail 2.7
  961.     will be, more-or-less, a version of smail 2.5 with all bugs eliminated,
  962.     and lmail's functionality rolled in.  It will probably include
  963.     the latest pathalias, and possibly a new revision of unpackmaps.
  964.  
  965.     Watch this space for late-breaking news ;-)
  966.  
  967. lmail: Author Jon Zeeff <zeeff@b-tech.ann-arbor.mi.us, zeeff@ais.org>
  968.  
  969.     When you install smail 2.5, you link the original /bin/mail (binmail
  970.     above) to /bin/lmail to perform the task of actually delivering the
  971.     mail to the user's mailbox (LDA).
  972.  
  973.     Since smail 2.5 was not capable of doing mail-to-pipe and mail-to-file
  974.     aliasing, Jon Zeeff wrote a replacement lmail that implemented
  975.     these (along with user mailbox delivery).
  976.  
  977.     Jon's program is okay for casual use, but has some pretty serious
  978.     bugs.  Fixed versions are available, but you're probably better
  979.     off waiting for smail 2.7, or installing deliver or procmail.
  980.  
  981. smail 3: Author Ronald S. Karr* <tron@veritas.com> and Landon Curt Noll.
  982.  
  983.     Smail3.1 is a domain-capable mail router and delivery program that
  984.     works in the UUCP zone and on the Internet and that is capable of
  985.     gatewaying between the two.  It was written primarily by me (Ronald
  986.     S.  Karr) and Landon Curt Noll, with the blessings of the original
  987.     Smail1 and Smail2 authors.
  988.  
  989.     Smail3 supports SMTP, UUCP mail, alias files, .forward files, mailing
  990.     list directories, pathalias files, /etc/hosts files, the domain name
  991.     system, and can also query uucp for neighboring sites, automatically.
  992.     It also supports use of encapsulated SMTP commands for delivery over
  993.     UUCP connections, which allows batching of multiple messages into a
  994.     single UUCP transaction, and allows many addresses to be passed with a
  995.     single message transfer, which can greatly decrease the traffic
  996.     generated for large mailing lists.  It is also very simple to configure
  997.     with a reasonable certainty of correctness.
  998.  
  999.     Smail3 includes pathalias and a reliable map unpacker.
  1000.  
  1001.     Rather than using configuration files to resolve addresses based on
  1002.     their syntax, ala sendmail, Smail3 uses a database metaphore for
  1003.     resolving addresses based on their contents.  The set of methods that
  1004.     Smail3 uses for resolving local addresses and hosts is configurable and
  1005.     extensible.  Smail3's methods for parsing addresses are not
  1006.     configurable.  It is the opinion of the authors that addressing on the
  1007.     Internet and in the UUCP zone has become sufficiently standardized that
  1008.     attempts to allow configurability in this area are now a hindrance to
  1009.     the correct working of the network.
  1010.  
  1011.     Current releases of Smail3 have some problems when operating on the
  1012.     Internet or on local ethernet networks.  Some of the problems arrise
  1013.     when when the level of traffic gets too high, and result from the fact
  1014.     that Smail3 does not currently limit its usage of CPU resources.
  1015.     Additionally, Smail3 is not yet sufficiently intelligent in its
  1016.     management of outgoing SMTP connections.  As a result, Smail3 does not
  1017.     make effective use of single connections, and cannot use a history of
  1018.     connection failures to alter its behavior.  These problems are now
  1019.     being addressed.
  1020.  
  1021.     Questions related to Smail3 are usually discussed in comp.mail.misc.
  1022.     There are also two discussion mailing lists.  To join the mailing
  1023.     lists, send mail to:
  1024.  
  1025.     smail3-users-request@cs.athabascau.ca
  1026.  
  1027.     The current release of Smail3 can be found on uunet, in the directory
  1028.     /usr/spool/ftp/mail.  The current release file is smail-3.1.25.tar.Z.
  1029.  
  1030.     Smail 3 is covered under the GPL (if it matters)
  1031.  
  1032. sendmail: Original author Eric Allman
  1033.  
  1034.     Sendmail is the granddaddy of all intelligent MTA's.  It can do just
  1035.     about anything.  It's main problem is that it can do just about
  1036.     anything.  Modification of sendmail's configuration tables (which is
  1037.     necessary with most vendor-supplied versions) is NOT for novices.
  1038.     The language of the sendmail.cf is cryptic, but that isn't really
  1039.     the problem (and this problem can be solved by using "EASE", a
  1040.     sendmail.cf writing language, or the UIUC IDA kit's configuration
  1041.     file building tools).  The problem is that it's extremely difficult
  1042.     to know when the rules you are implementing are the right thing--
  1043.     many sendmail configurations do slightly buggy, or even extremely
  1044.     buggy, things (eg: some major mail gateways munge From: headers in
  1045.     illegal ways).  (The default configurations generated by the UIUC
  1046.     IDA kit are, however, very good at Doing the Right Thing under most,
  1047.     if not all, circumstances.)
  1048.  
  1049.     Worse, every vendor's version of sendmail is different, and many
  1050.     of their sendmail.cf's don't work at all  (HPUX is one example
  1051.     of where the sendmail.cf is actually pretty sane.  HP is to
  1052.     be congratulated.  On the other hand, some vendors, who shall
  1053.     remain nameless, can't even get their sendmail to speak SMTP
  1054.     on a LAN).
  1055.  
  1056.     There are several versions of sendmail extant in the world.  There
  1057.     is no "latest" version.  If you want to use sendmail, it is strongly
  1058.     recommended that you obtain "IDA sendmail".  The IDA version is much
  1059.     more likely to do the right things with mail coming from, or
  1060.     ultimately going to, UUCP sites and is much easier to maintain.  IDA
  1061.     sendmail can handle pathalias-style UUCP routing quite well.  The
  1062.     impending release of BSD 4.4 includes a new version, 6.1, of sendmail.
  1063.  
  1064.     I am being a bit overly harsh on sendmail.  If you obtain a good
  1065.     configuration (like the aforementioned HPUX version), or are willing
  1066.     to spend the time to learn it, sendmail will do what you want.
  1067.     Well.  IDA sendmail is STRONGLY recommended.  The latest version of
  1068.     IDA sendmail is 5.65c, and 5.65d is in beta test.  5.65c is
  1069.     available for FTP from ftp.uu.net and uxc.cso.uiuc.edu.  Paul Pomes,
  1070.     <Paul-Pomes@uiuc.edu>, is controlling the IDA Sendmail releases.
  1071.  
  1072.     Sendmail is discussed in comp.mail.sendmail.
  1073.  
  1074.     EASE version 3.5 was posted in volume 25 of comp.sources.unix and
  1075.     is available from wuarchive.wustl.edu [128.252.135.4] (directory
  1076.     /usenet/comp.sources.unix/volume25/ease) and many other c.s.u
  1077.     archives. 
  1078.  
  1079. ZMailer: Author Rayan Zachariassen* <rayan@cs.toronto.edu>
  1080.  
  1081.     ZMailer is intended for gateways or mail servers or other large site
  1082.     environments that have extreme demands on the abilities of the mailer.
  1083.  
  1084.     Code and Design features:
  1085.  
  1086.     + Strong limits on host impact.
  1087.     + Secure design (and hopefully implementation).
  1088.     + Natural fit for client/server environments.
  1089.     + Extremely customizable configuration mechanism.
  1090.     + Flexible database interface with support for: sorted files, unsorted
  1091.       files, dbm, ndbm, gdbm, nis (yellow pages), dns (BIND resolver),
  1092.       /etc/hosts file, and in-core data.
  1093.     + Efficient message queue management.
  1094.     + Fast binary-transparent SMTP server and client.
  1095.     + Low-technology implementation.
  1096.  
  1097.     Default configuration file features:
  1098.  
  1099.     + Default configuration will work for most sites.
  1100.     + Network protocol support for: smtp, uucp, bitnet, mail to news.
  1101.     + An easy way of overriding any external routing information.
  1102.     + Automatic handling of mailing lists.
  1103.  
  1104.     It is available by anonymous FTP from ftp.cs.toronto.edu:/pub/zmailer.tar.Z
  1105.     or ftp.cs.toronto.edu:/distrib/zmailer.tar.Z.
  1106.  
  1107. MMDF [reviewed by I.Sparry@gdt.bath.ac.uk]
  1108.  
  1109.     MMDF is a MTA. It works on the principle that you have communications
  1110.     channels, both incoming and outgoing, and it arranges for messages to
  1111.     pass between them.
  1112.  
  1113.     Strong points include:
  1114.     * Ability to turn up and down debugging level on the fly
  1115.     * Very strong on authentication, and permission checking.
  1116.     * Can block mail based on who it came from, how it got there,
  1117.       who it is going to.
  1118.  
  1119.     It is older than sendmail, simpler than sendmail, and it is a great
  1120.     pity that it was not shipped as standard instead of sendmail.
  1121.  
  1122.     It has one major advantage to people in the UK, in that it knows how to
  1123.     handle mail addresses in our 'correct' format (Most significant part first,
  1124.     e.g. net.uu.uunet), as well as the thing the rest of the world uses :-) :-)
  1125.  
  1126.     The accepted wisdom is that MMDF should be replaced with PP, since PP
  1127.     is the descendent of MMDF.  We are happy with MMDF, and for many years all
  1128.     the UK mail gateways used it.
  1129.  
  1130. PP: Author University College London
  1131.  
  1132.     PP is a Message Transfer Agent, intended for high volume message
  1133.     switching, protocol conversion, and format conversion. It is targeted for
  1134.     use in an operational environment, but may also be useful for investigating
  1135.     Message related applications. Good management features are a major
  1136.     aspect of this system. PP supports the 1984 and 1988 versions of the
  1137.     CCITT X.400 / ISO 10021 services and protocols. Many existing RFC 822
  1138.     based protocols are supported, along with RFC 1148 conversion to X.400.
  1139.     PP is an appropriate replacement for MMDF or Sendmail, and also supports
  1140.     SMTP and UUCP mail.
  1141.  
  1142.     For more information contact: support@xtel.co.uk or xtel@cs.nott.ac.uk
  1143.     The latest version is PP-6.0, which was posted in comp.sources.misc,
  1144.     volume 27.
  1145.  
  1146. SVR4 mail: Author AT&T (description written by Tony Hansen,
  1147.     hansen@pegasus.att.com)
  1148.  
  1149.     The System V Release 4 mail system is a domain-capable mail router and
  1150.     delivery program that works in the UUCP zone and on the Internet and
  1151.     that is capable of gatewaying between the two.
  1152.  
  1153.     SVR4 mail supports SMTP, UUCP mail, alias files, forwarding files,
  1154.     mailing list directories, /etc/hosts files, the domain name system, and
  1155.     can also query uucp for neighboring sites, automatically.  (System V
  1156.     Release 4.1 also allows batching of multiple messages into a single UUCP
  1157.     transaction, and allows many addresses to be passed with a single
  1158.     message transfer, which can greatly decrease the traffic generated for
  1159.     large mailing lists.)  It is also very simple to configure with a
  1160.     reasonable certainty of correctness.
  1161.  
  1162.     It also supports mail-to-pipe and mail-to-file.
  1163.  
  1164.     SVR4 mail uses configuration files to resolve addresses based on their
  1165.     syntax, somewhat similar to sendmail, but using regular expressions and
  1166.     a more easily understood syntax. The set of methods that SVR4 mail uses
  1167.     for resolving local and remote addresses and hosts is configurable and
  1168.     extensible.
  1169.  
  1170.     Questions related to SVR4 mail are usually discussed in comp.mail.misc.
  1171.  
  1172.     SVR4 mail is a standard part of System V Release 4; unfortunately, some
  1173.     vendors have not realized that SVR4 mail is not the same mailer as the
  1174.     SVR3 mail system, and have replaced it with other inferior mail systems.
  1175.  
  1176. deliver: Author Chip Salzenberg* <chip@tct.com>
  1177.  
  1178.     Deliver allows any user to write a shell script that processes all
  1179.     incoming mail messages for that user.  The system administrator may
  1180.     also install scripts that process all messages by installing
  1181.     it as the Local Delivery Agent (lmail replacement).
  1182.  
  1183.     The output of a script is a list of mail addresses, files and programs
  1184.     that should receive the message.  It has access to each message as it
  1185.     is processed, so the action can be content dependent.  The script may
  1186.     also generate automatic replies, like the "vacation" program, or pass
  1187.     along a modified version of the original message.
  1188.  
  1189.     Deliver can be used to construct mail-based services (e.g. automatic
  1190.     mailing list maintenance).  It can also be used to filter mail
  1191.     automatically in prearranged ways (e.g. encryption and decryption,
  1192.     tossing junk mail, or vacation notices).
  1193.  
  1194.     Deliver was last posted in comp.sources.reviewed, volume 1.  The
  1195.     current version is 2.1.09.
  1196.  
  1197. procmail: Author Stephen R. van den Berg*
  1198.                 <berg@pool.informatik.rwth-aachen.de>
  1199.  
  1200.     Can be used to create mail-servers, mailing lists, sort your incoming mail
  1201.     into separate folders/files (real convenient when subscribing to one or
  1202.     more mailing lists or for prioritising your mail), preprocess your mail,
  1203.     start any programs upon mail arrival (e.g. to generate different chimes on
  1204.     your workstation for different types of mail) or selectively forward
  1205.     certain incoming mail automatically to someone.
  1206.  
  1207.     The accompanying formail program enables you to generate autoreplies,
  1208.     split up digests/mailboxes into the original messages, do some very simple
  1209.     header-munging/extraction, or force mail into mail-format (with leading
  1210.     From line).
  1211.  
  1212.     Procmail was designed to deliver the mail under the worst conditions
  1213.     (file system full, out of swap space, process table full, file table full,
  1214.     missing support files, unavailable executables; it all doesn't matter).
  1215.     Should (in the unlikely event) procmail be unable to deliver your mail
  1216.     somewhere, the mail will bounce back to the sender or reenter the
  1217.     mailqueue (your choice).
  1218.  
  1219.     A recent version can be picked up at various comp.sources.misc archives.
  1220.     The latest version (2.70) can be obtained directly from the ftp-archive at:
  1221.         ftp.informatik.rwth-aachen.de (137.226.112.31)
  1222.         as compressed tar file:         pub/unix/procmail.tar.Z         <128KB
  1223.         or in compressed shar format:   pub/unix/procmail.0?.Z
  1224.  
  1225.     [Ed note: I had noted reported difficulties in integrating procmail
  1226.     with System V and/or smail 2.5.  The 2.70 version of Procmail eliminates
  1227.     these difficulties.]
  1228.  
  1229. mailagent: Author Raphael Manfredi* <ram@eiffel.com>
  1230.  
  1231.     The mailagent is yet another mail filter, written in perl, which will let
  1232.     you do anything with your mail. It has all the features you may expect from
  1233.     a filter: mailing lists sorting, forwarding to MTA or to inews, pre-processing
  1234.     of message before saving into folder, vacation mode, etc... It was initially
  1235.     written as an ELM-filter replacement, but has now enough power to also
  1236.     supplant MMDF's .maildelivery. There is also a support for @SH mail hooks,
  1237.     which allows you to automatically distribute patches or software via command
  1238.     mails.
  1239.  
  1240.     The mailagent was designed to make mail filtering as easy as it can be. It
  1241.     is highly configurable and fairly complete. Rules are specified in a lex-like
  1242.     style, with the full power of perl's regular expressions. The automaton
  1243.     supports the notion of mode, and header selection has many magic features
  1244.     built-in, to ease the rule writing process.
  1245.  
  1246.     The distribution comes with a set of examples, an exhaustive test suite,
  1247.     and naturally a detailed manual page. It should be noted that the mailagent
  1248.     will work even if your system administrator forbids "| programs" hooks in
  1249.     the ~/.forward, provided you have access to some sort of cron daemon.
  1250.  
  1251.     The mailagent program is available via anonymous FTP thanks to Christopher
  1252.     Davis <ckd@eff.org>:
  1253.  
  1254.     Host: ftp.eff.org (192.88.144.4),
  1255.     Directory: /pub/net-tools
  1256.     File: perl-mailagent.tar.Z
  1257.  
  1258.     Recently issued patches can be obtained directly from my mailagent (see
  1259.     instructions in the README file).
  1260.  
  1261.     [Ed note: while feasible to use this as an LDA, the author recommends against
  1262.     it.  Since it is written in Perl, it can cause rather severe performance
  1263.     problems on small machines, but it does try to regulate system impact.
  1264.     On high performance workstations, it should be a real winner.]
  1265.  
  1266. pathalias: Author Peter Honeyman
  1267.  
  1268.     Pathalias reads the UUCP Map Project maps (they need to be extracted
  1269.     from the postings first) and constructs a database containing the
  1270.     minimum cost route to any machine in the maps.  This database can
  1271.     then be used with any mailer that knows how to search the database
  1272.     (eg: smail 2.5, Zmailer?, and some versions of sendmail.  Smail 3
  1273.     comes bundled with pathalias).
  1274.  
  1275.     There were previous versions of this program.  You must use
  1276.     pathalias version 10 (latest version), because some map format
  1277.     changes have been made and only pathalias 10 can parse them.
  1278.     If your pathalias doesn't give a syntax error on:
  1279.     echo "file {foo}" | pathalias
  1280.     It's the new one.
  1281.  
  1282.     There were other route-generating programs, but all (as far as
  1283.     I know) are very obsolete, and none run as fast as pathalias
  1284.     (still, which can be rather hard on machines with smallish virtual
  1285.     memory or RAM capacities).
  1286.  
  1287.     pathalias 10 is available from comp.sources.unix archives,
  1288.     volume 22.  A patch was just released in comp.sources.unix
  1289.     (vol 25) that addresses an oddity when used with smail (not that
  1290.     I've ever noticed it).
  1291.  
  1292. uuhosts: Author John Quarterman
  1293.  
  1294.     The "defacto" standard UUCP Map Project map unpacker.  Includes
  1295.     a program to arbitrarily view individual map entries.  Uuhosts
  1296.     implements trojan horse/virus security by running under
  1297.     a "chroot()" system call.  Uuhosts does not appear to be
  1298.     actively maintained, and the last versions that I have inspected
  1299.     were unable to easily compress the maps (a full set of maps
  1300.     is >6000 blocks), had no provision for automatically
  1301.     running pathalias, and will not work with the newest version
  1302.     of cnews.  Further, uuhost's header checking is so picky
  1303.     that the slightest change in the map format will cause
  1304.     uuhosts to reject map updates.
  1305.  
  1306.     Use of uuhosts now will require some minor hacking - and this
  1307.     hacking will stretch your knowledge of Bourne shell programming.
  1308.  
  1309.     The last edition, "uuhost4" (version 1.69) appears to have
  1310.     been posted in comp.sources.unix in volume 3, 1986.
  1311.  
  1312.     Do not be confused by Jan-Piet Mons "uuhost 2.0" program posted
  1313.     in alt.sources.  This is not a map unpacker.  It is just
  1314.     a map viewer, and is a subset of the real uuhosts.
  1315.  
  1316. unpackmaps: Author Chris Lewis* <clewis@ferret.ocunix.on.ca>
  1317.  
  1318.     Unpackmaps is a superset of the functionality of uuhosts.
  1319.     It obtains its security by doing the map unpacking with
  1320.     a specialized parser that knows the map article format
  1321.     rather than invoking a shar/shell.  Compression and pathalias
  1322.     invocation is automatic, correctly takes into account
  1323.     the change date of local configuration files, and will
  1324.     work with the latest Cnews.
  1325.  
  1326.     The newest version of unpackmaps, version 4.0, is currently
  1327.     in beta test, and appeared in alt.sources and comp.mail.uucp
  1328.     July 12, 1992.  This version is entirely written in C,
  1329.     is considerably faster than unpackmaps 3 or uuhosts, has
  1330.     considerably more features, and will work with Brian Reids
  1331.     PostScript net maps too.
  1332.  
  1333.     The beta version nows seems stable enough for general use.
  1334.     After the beta, it will be reposted in comp.sources.misc
  1335.     or comp.sources.unix.
  1336. -- 
  1337. Chris Lewis; clewis@ferret.ocunix.on.ca; Phone: Canada 613 832-0541
  1338. Psroff 3.0 info: psroff-request@ferret.ocunix.on.ca
  1339. Ferret list: ferret-request@ferret.ocunix.on.ca
  1340.  
  1341.